package com.kmxd.ams.infra.system.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 用户表
 *
 * @author admin
 * @since 2022-03-24
 */
@Data
public class SysUser implements Serializable {

  private static final long serialVersionUID = 1L;

  /** 主键ID */
  @TableId(type = IdType.ASSIGN_ID)
  private Long id;

  /** 昵称 */
  private String nickname;

  /** 姓名 */
  private String realname;

  /** 英文名 */
  private String englishName;

  /** 账号 */
  private String account;

  /** 性别 1男；2女；3未知 */
  private String sex;

  /** 生日 */
  private Date birthday;

  /** 密码 加密后的密码 */
  private String password;

  /** 修改密码标记 0未修改；1已修改 */
  private String pswModified;

  /** 密码最后更改时间 */
  private Date pwdUptime;

  /** 邮箱 */
  private String email;

  /** 头像 */
  private String avatar;

  /** 手机号 */
  private String phone;

  /** 办公电话 */
  private String workTel;

  /** 工作地址 */
  private String workAddress;

  /** 家庭地址 */
  private String homeAddress;

  /** ip信息 */
  private String ip;

  /** mac地址 */
  private String mac;

  /** QQ号 */
  private String qq;

  /** 微信号 */
  private String wechat;

  /** 锁定标记 0正常；1锁定 */
  private int lockFlag;

  /** 用户类型 0常规用户；1临时用户;2兼职用户; */
  private int userType;

  /** 状态 0正常；1停用 */
  private int status;

  /** 开始时间 */
  @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  private Date startTime;

  /** 结束时间 */
  @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  private Date endTime;

  /** 备注 */
  private String remarks;

  /** 创建人 */
  @TableField(fill = FieldFill.INSERT)
  private Long createBy;

  /** 创建时间 */
  @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  @TableField(fill = FieldFill.INSERT)
  private Date createTime;

  /** 更新人 */
  @TableField(fill = FieldFill.UPDATE)
  private Long updateBy;

  /** 更新时间 */
  @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  @TableField(fill = FieldFill.UPDATE)
  private Date updateTime;

  /** 删除状态(0-正常,1-已删除) */
  @TableLogic private Integer delFlag;

  /** 登录mac限制 */
  private String limitMac;

  /** 开启mac地址限制0未开启，1开启 */
  private int haveMacLimit;

  /** 部门ID */
  private Long deptId;
}
